PHP 中的每個(gè)表達(dá)式都屬于以下某個(gè)內(nèi)置類型,具體取決于值:
- null
- bool
- int
- float (浮點(diǎn)數(shù))
- string
- array
- object
- callable
- resource
PHP 是動(dòng)態(tài)類型語言,這意味著默認(rèn)不需要指定變量的類型,因?yàn)闀?huì)在運(yùn)行時(shí)確定。然而,可以通過使用類型聲明對語言的一些方面進(jìn)行類型靜態(tài)化。
類型限制了可以對其執(zhí)行的操作。然而,如果使用的表達(dá)式/變量不支持該操作,PHP 將嘗試將該值類型轉(zhuǎn)換為操作支持的類型。此過程取決于使用該值的上下文。更多信息參閱類型轉(zhuǎn)換。
小技巧:類型比較表也很有用,因?yàn)榇嬖诓煌愋椭g的值的各種比較示例。
注意:使用類型轉(zhuǎn)換,強(qiáng)制將表達(dá)式的值轉(zhuǎn)換為某種類型。還可以使用 settype() 函數(shù)就地對變量進(jìn)行類型轉(zhuǎn)換。
使用 var_dump() 函數(shù)檢查表達(dá)式的值和類型。使用 get_debug_type() 檢索表達(dá)式的值和類型。使用 is_type 檢查表達(dá)式是否屬于某種類型。
$a_bool = true;
$a_str = "foo";
$a_str2 = 'foo';
$an_int = 12;
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
以上示例在 PHP 8 中的輸出:
bool
string
int(16)
注意:PHP 8.0.0 之前,get_debug_type() 無效,可以使用 gettype() 函數(shù)代替。但是沒有使用規(guī)范的類型名稱。
更多建議: